Application programming interfaces (API) are clearly defined interfaces for enabling communication between software components. One type of API is a web API in which communication between software components takes place using the Internet and Web-specific protocols. Some web APIs are built according to the representational state transfer (REST) architectural style, which defines a set of constraints and properties based on the hypertext transfer protocol (HTTP).
There are a variety of resources for facilitating the creation of APIs. For example, there are several API description languages (or “description languages”) that have been developed to provide a relatively standardized and structured description of the functional and expected behavior of an API. Examples of description languages can include the Web Services Description Language (WSDL), the Web Application Description Language (WADL), the OpenAPI specification, the RESTful Service Description Language (RSDL), and the RESTful API modeling language (RAML).